home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230B / NEW2TN1.14 < prev    next >
Text File  |  1995-06-15  |  24KB  |  539 lines

  1.                     Upgrading TNOS to release 1.14
  2.          http://www.lantz.com/Update1.14.html
  3.  
  4.  
  5. TNOS 1.14 will be the next release of TNOS, to be released sometime
  6. before the formation of the United Federation of Planets. Hopefully,
  7. this list of changes will give you an idea of the scope of work that
  8. has occurred between versions. Of course, it may be faster just to
  9. re-read the docs when the next version is released.
  10.  
  11. This document is divided into:
  12.  
  13.  
  14.     * Bug Fixes
  15.     * Improvements
  16.     * Minor Changes
  17.     * Known Bugs
  18.     * To-Do List
  19.  
  20. ------------------------------------------------------------
  21. Bug Fixed:
  22.  
  23. The following bugs have been squashed.
  24.  
  25. *    Changed the BBS quickscan command description 
  26.   It did say that "QUI" was the abbreviation, but (of course) that is the
  27.   abbreviation for "quit". This is changed to "QUICkscan"...
  28.  
  29. *    Also changed the BBS user command description - to "USEr" 
  30.  
  31. *    Fixed two potential null pointer dereferences in rspf.c 
  32.  
  33. *    A potential null deference in 'domain addserver' fixed 
  34.  
  35. *    Fixed a problem with serial device lock files 
  36.   This only occurred if the lock file existed and you did NOT have READ
  37.   permissions on that lock file.
  38.  
  39. *    Several assorted minor null pointer deferences 
  40.  
  41. *    Changes to avoid FLEXNET packets from being dumped as ARP packets 
  42.   This should avoid the crashes when tracing an interface using FlexNet
  43.  
  44. *    Long-time 'ax25 flush' bug found.... 
  45.   Thanks to Christine Rial <crial@telerama.lm.com> for giving me enough
  46.   info to get this one......
  47.  
  48.   I have had one or two of you send me cryptic email about having crashes
  49.   with the heard lists. Never had enough info, till now. Really didn't need
  50.   much, but couldn't understand having problems with heard lists, when I
  51.   use the 'ax heard' all the time.
  52.  
  53.   Well, the problem was in FLUSHING the heard lists, IF you were using POLLED
  54.   memory, which is the default. Well, it was ALWAYS freeing memory like you
  55.   would for un-POOLED memory, causing crashes.
  56.  
  57. *     Fixed an SMTP bug with LZW 
  58.   This was a typo that crept in with release 1.13
  59.  
  60. *     A workaround for a GCC optimization bug in 2.6.x 
  61.   There was a BIG problem compiling with 2.6.x that would 
  62.   eat up ALL available CPU
  63.   cycles!?! A look with 'top' usually shows 90+ % :-(
  64.  
  65.   The cause is a bug in GCC in the optimizer, that incorrectly optimizes
  66.   the portion of code that calculates the minimum time that the system can
  67.   wait to I/O, if no processes are active. The bug makes it THINK that it
  68.   can NEVER do a blocking wait for I/O, so the idle routine is CONTINUALLY
  69.   calling the I/O routine (ding()) in a process devouring loop!
  70.  
  71.   I've tried several workarounds, and they ALL optimize incorrectly, so the
  72.   workaround for the moment is to NOT allow the compiler to optimize
  73.   unix.c. The Makefile was changed for this purpose.
  74.  
  75. *     Fixed an problem with disabled interrupts 
  76.   One process INCORRECTLY masks interrupts at the
  77.   WRONG place. DOS doesn't SEEM to be affected, but who knows what it MAY
  78.   have done to efficiency. BUT the Linux processes had their 'heartbeat'
  79.   timer COMPLETELY disabled because of this, causing sluggishness during
  80.   non-idle times.
  81.  
  82. *     Fixed a bug in the EXPIRE routine 
  83.   This bug didn't release 'mbox maintenence' mode if the expire.dat file
  84.   didn't exist.
  85.  
  86. *     Fixed a bug with POLLED forwarding 
  87.  
  88. *     Fixed a bug with AXUI and added selective timestamping 
  89.  
  90. *     Elusive 'trace <iface> 211' output bug found.
  91.   The bug occurred if you used trace mode 211. EVENTUALLY you crash.
  92.   A look at the
  93.   output showed occasional weird things in the ASCII portion, which looked
  94.   like floating point numbers.
  95.  
  96.   All fixed now! 
  97.   Awful simple when you know what you're looking at ;-)
  98.  
  99. *    * 'Ron' bug discovered ;-) 
  100.   There was a buglet in using the 'mbox newmotdfile' command, in that it
  101.   would wipe out the FIRST 'R' in each line, not necessarily the 'R'
  102.   attribute! The result was anyone that had a name starting with 'R',
  103.   ended up with it changed to a space. 'Ron' became ' on'. This is now fixed
  104.  
  105. *     Fixed a bug in POOLED memory usage, which left unused entries 
  106.   It was leaving one unused entry per pool block.
  107.  
  108. *     Fixed a bug in the BBS 'read' command with non-PBBS message-ids 
  109.   This would abort if given a bid from a mailer like Pine or Chameleon.
  110.  
  111.  
  112. ------------------------------------------------------------
  113. Improvements:
  114.  
  115. The following optimizations and improvements have occurred.
  116.  
  117. *    Added to the REQUEST SERVER the ability to use external Callbook Server 
  118.   Previously, the Request Server would only grant 'QTH' requests if it was
  119.   running a SAM callbook (MSDOS, only). Now, as long as you can manually
  120.   retrieve from a configured Internet Callbook server, you can also grant
  121.   'QTH' requests from that same server.
  122.  
  123. *    Added a Conference Bridge '/cstat' command 
  124.   This gives the output from the '/links' command, followed by the output of
  125.   the '/dest' command.
  126.  
  127. *     Made the netrom nodes broadcast more CPU-friendly 
  128.   The regular broadcast of netrom nodes was setup as a regular timer event,
  129.   but now the timer event spawns off a separate process to do the broadcasting.
  130.   This is too allow placing delays between the broadcasting of the different
  131.   interfaces. When using this with axip over the Internet, ALL those axip
  132.   interfaces go out the same port, and this not only hogged a slow dialup
  133.   SLIP or PPP line, but also made the rest of the TNOS session brain-dead
  134.   until the node broadcast was complete.
  135.  
  136.   While my 29 interfaces is NOT the
  137.   normal situation, it SHOULD handle it better. So now there is 5 seconds
  138.   pause between interface broadcasts, which fixes the above problems quite
  139.   well. When all of the netrom interfaces are complete, then the
  140.   'NETROM broadcast' process dies.
  141.  
  142. *     Number of AXIP links now selectable from command line 
  143.   There is now a '-a xx' option to TNOS to allow you select the number of
  144.   AXIP links available for use. Increasing the number of AXIP links USED to
  145.   require re-compiling the program after changing a constant value set in
  146.   one of the header files. Now it can be changed easily.
  147.  
  148.   The default for number of AXIP links has gone back to 16. The only overhead
  149.   that is used by a non-used-but-allocated AXIP link is 4 bytes per interface.
  150.  
  151.   The Command Session 'status' command now also shows how many AXIP interfaces
  152.   are available.
  153.  
  154. *    Added a new maintainence mode command 
  155.   Added a 'mbox maintclear [on|off]' command, which determines whether or not
  156.   the system will bump users off the system or not, when it is time for
  157.   maintenence. If set to on, the when maintenence mode time comes, it
  158.   will bump users off with the 'mbox maintstr' message, then start maintenence.
  159.   If this is off, then it will work like before, and simply WAIT until the
  160.   last user has logged off before starting maintenence.
  161.  
  162. *    Added a way to generate PBBS 'export' files 
  163.   This has been done in a seemless way. You add an entry to your forward.bbs
  164.   file, with a connection method of 'export'. All messages going to this
  165.   special export BBS, go into the 'spool/export/current.exp' file. At
  166.   regular intervals, you can 'export now' (or 'export <minutes>'), which
  167.   renames the 'current.exp' file to a unique name of the form 'MMDDHHMM.exp',
  168.   also located in the 'spool/export' directory.
  169.  
  170. *    Added a way to accept PBBS 'import' files 
  171.   This also has been made as painless as possible. All "*.imp" files in the
  172.   'spool/import' directory are imported when you 'import now'
  173.   (or 'import <minutes>'). The original file is deleted after the import is
  174.   complete.
  175.  
  176.   Another way of doing this WITH A WARNING is to send a message to 
  177.   'import@host'. This will be immediately processes and imported.
  178.  
  179.   **THE WARNING**
  180.   The import/export files end each message with a '/EX'. Before sending mail to
  181.   'import', you must run the file through a program and change all '/EX's to
  182.   '//EX's, otherwise, NO MESSAGES will get imported, since the import routine
  183.   feeds the data into the BBS as if it was being received. The '/EX's in the
  184.   import file are used to complete each message. YOU WERE WARNED! ;-)
  185.  
  186. *    Added the 'icmp timeexceed' command, from JNOS 
  187.   This allow you to PREVENT the sending of ICMP Time Exceeded messages, to
  188.   make the system invisible to traceroutes. Good to help secure gateways on
  189.   the Internet.
  190.  
  191. *    Added the 'icmp quench' command, from JNOS, for MSDOS version 
  192.   This allow you to PREVENT the sending of ICMP Source Quench messages when
  193.   memory goes low. Only for MSDOS version.
  194.  
  195. *    Added the 'iface rxecho' command, via JNOS, from Johan 
  196.   From the JNOS 1.10j release files:
  197.  
  198.   Johan WG7J also provided changes to iface.c and config.c that permit (if
  199.   RXECHO is defined) packets received on one interface to be sent out another
  200.   interface, provided they are of the same type.  This is set by:
  201.  
  202.         ifconfig <iface> rxecho {off | <echo-to-iface>}
  203.  
  204.   Johan cites two interesting applications:
  205.  
  206.   Case 1:
  207.  
  208.   You have two machines connected to each other via a kiss link. Only
  209.   pc1 has radio's. You want to 'listen' to a radio channel on pc2. Thus, on
  210.   pc1, you add:
  211.  
  212.         ifconfig <radio-interface> rxecho <kiss-to-pc2-interface>
  213.  
  214.   Now on pc2's kiss interface to pc1, you will receive all packets heard on
  215.   pc1's <radio-interface>.  If you then add to pc1:
  216.  
  217.         ifconfig <kiss-to-pc2-interface> rxecho <radio-interface>
  218.  
  219.   all packets received by pc1 on kiss-interface (ie. coming from pc2) will be
  220.   send out on radio-interface. Ie. for pc2 it looks like it is directly
  221.   connected to radio-interface, as if pc1 isn't there !
  222.  
  223.   Case 2:
  224.  
  225.   Say you have a gateway pc with radio's, and another pc with ethernet
  226.   connected. You can monitor radio channels on the ethernet pc by setting up
  227.   an axip link between the gateway and the pc ('attach axip ...' and then
  228.   use the scheme above between the radio port and the axip port on the
  229.   gateway machine.
  230.  
  231.   Note that you can monitor multi ports, although you will not be able to
  232.   know what port a certain packet originated from.  You can NOT go transparent
  233.   to more then one port, since an interface can only forward received data to
  234.   one interface.
  235.  
  236.   Note also that you can monitor frames on fast ports (eg. Ethernet) but NOS
  237.   might become more unstable when doing so, because of the large workload.
  238.  
  239. *     Added the 'smtp dtimeout' command, from JNOS 
  240.   This implements a way of
  241.   returning to sender those messages that stay in mqueue longer than a
  242.   specified interval.  'smtp dtimeout [hours]' is used to specify how long the
  243.   msg stays in the queue, being retried at 'smtp timer' intervals (unless low
  244.   on memory, or maxclients is too constraining, etc.)  Setting hours to zero
  245.   (the default) disables this capability.  This is one way of solving the
  246.   misaddressed email problem!  It does have the drawback that if an alias is
  247.   used to copy bulletins to an smtp destination, that becomes unreachable, the
  248.   bulletin author may receive his msg back!
  249.  
  250. *    Added code from JNOS for use of multiple MX entries 
  251.   I also added Selcuk's resolve_amx() to try multiple MX
  252.   destinations in the order of preference.
  253.  
  254. *    Added code from JNOS for 'domain maxclients' 
  255.   I added in Andrew G8FSL's "domain maxclients N" code to domain.c, so as
  256.   to limit the maximum number of simultaneous DNS server processes.  Default
  257.   maximum is 6.
  258.  
  259. *    Added the 'ifconfig <iface> tcp' commands from JNOS 
  260.   No minor task here ;-) This allows you to have separate TCP parameters
  261.   per interface, such as blimit, irtt, maxwait, mss, retries, syndata,
  262.   timertype and window. The regular 'tcp' commands set the DEFAULTS that
  263.   are given to a new interface.
  264.  
  265.   NOTE:
  266.   Make sure to set the 'tcp' defaults BEFORE attaching your
  267.   interfaces. These could be done AFTER with prior versions of TNOS, but
  268.   should be done BEFORE for 1.14 and up.
  269.  
  270. *    Made 'tcp stat' mods, which shortens display 
  271.   This mod (made also to the 'tcp connections' command) by default only
  272.   displays ACTIVE tcp connections, and NOT the waiting servers. To view the
  273.   waiting servers, also, give the commands a parameter of "all". This
  274.   mod based on the JNOS mods by Doug Crompton, wa3dsp.
  275.  
  276. *    Added the 'ifconfig <iface> ax25' commands from JNOS 
  277.   No minor task here, either ;-) This allows you to have separate
  278.   AX25 parameters
  279.   per interface, such as bctext, blimit, irtt, maxwait, maxwait, paclen,
  280.   pthresh, retries,  timertype, t3, t4, version
  281.   and window. The regular 'ax25' commands set the DEFAULTS that
  282.   are given to a new interface.
  283.  
  284.   NOTE:
  285.   Make sure to set the 'ax25' defaults BEFORE attaching your
  286.   interfaces. These could be done AFTER with prior versions of TNOS, but
  287.   should be done BEFORE for 1.14 and up.
  288.  
  289.   Also note, that the JNOS bbscall and cdigi are NOT included, since
  290.   there are TNOS equivalents that perform the tasks better. 
  291.  
  292. *    Added the ability to remotely trace an interface.
  293.   While the idea comes from JNOS 1.10j, this one I re-invented, since the
  294.   original design had a very basic problem, it would not allow a remote
  295.   user to restore a trace to the state that it was found.
  296.   From JNOS docs:
  297.  
  298.   Johan WG7J submitted changes to do all tracing to a socket rather than a
  299.   file, so as to permit tracing to (1) the sysop's stdout stream while
  300.   connected to the mailbox, (2) a tcp connection to port 1236 if
  301.   TRACESERVER was defined and started, or (3) to a local disk file (or
  302.   the console trace window) as before.  In all cases, the trace <iface>
  303.   <args> command must be issued to begin tracing.  And, since tracing
  304.   produces more characters than in the packets being traced, the trace
  305.   socket MUST be faster than the interface being traced, or you will run
  306.   out of memory and crash!
  307.  
  308.   To trace an interface to the current socket, use:
  309.  
  310.         trace <iface> <mode> !
  311.  
  312.   The '!' tells it to attach the output to the current session.
  313.  
  314. *     Added a 'mbox scan' command 
  315.   This allows the sysop to choose whether or not the defaults given to new
  316.   users will have them scan for new messages on login. This has no effect
  317.   on any users currently in the users.dat file.
  318.  
  319. *     **MAJOR CHANGE** Moved some 'mbox' commands to the 'forward' command
  320.   If you DON'T change these, you WILL be asking for help ;-)
  321.  
  322.   The following commands (which were concerning forwarding) WERE located
  323.   in the 'mbox' command, and they have been moved to the 'forward' command.
  324.   Nothing else about them changed.
  325.  
  326.   Commands moved: bid, bidsuffix, fwdinfo, haddress, kick, mid, qth, rcall,
  327.   rsample, rstyle, smtptoo, subchannel, timer, trace, utc and zipcode
  328.  
  329. *     **MAJOR CHANGE** Moved some 'mbox' subcommands to a new 'mbox newuser'
  330.   command.
  331.  
  332.   If you DON'T change these, you WILL be asking for help ;-)
  333.  
  334.   The following commands (which concerned default settings given to new users)
  335.   are now moved to a separate subcommand, 'mbox newuser'. Nothing else about
  336.   them changed.
  337.  
  338.   Commands moved: nrid, and scan
  339.  
  340. *     Added a new attribute to the 'users.dat' file entries for mail holding 
  341.   There are times when one user or another needs a little hand-holding, and
  342.   SHOULD have their mail reviewed before allowing it to be forwarded on. There
  343.   is now an attribute 'H' for each user, which if enabled, will cause all mail
  344.   generated by them to be held for review of a sysop.
  345.  
  346. *     Added a new permission to the ftpusers files for mail holding 
  347.   Same reasoning as above. Permission is: hold_mail   16777216   0x01000000
  348.  
  349. *     Added a new 'mbox newuser hold' command 
  350.   This allows you to choose whether or not to hold all mail generated by
  351.   new users for review by a SYSOP.
  352.  
  353. *     Added a new 'mbox newuser area' command 
  354.   This allows you to choose whether or not to display the area indicator to
  355.   new users.
  356.  
  357. *     Added a BBS 'edituser user' command 
  358.   This command displays the current attributes for the user from the 'users.dat'
  359.   file, and allows you to change them. A menu is displayed.
  360.  
  361. *     And removed 'icmp quench', after thought (and arm twisting ;-) 
  362.   TNOS will no longer (in any version) send a source quench in cases of low
  363.   memory. The 'icmp quench' command mentioned earlier as being added to
  364.   1.14, has been removed.
  365.  
  366. *     Added a command for starting forwarding to a single BBS 
  367.   The command 'forward kickone <bbs> [poll]' will start a single forwarding
  368.   session. If the 'poll' parameter is given, it will do a polling connect,
  369.   even if the forward.bbs file is NOT set for polling.
  370.  
  371. *     Added handling of bid history in memory 
  372.   A new command, 'bid memory [on|off]' will allow you to access the data from
  373.   the 'history' file from memory. You MUST have POOLED memory compiled for this
  374.   option to be available. Each entry only takes 22 bytes, so 1024 bids can
  375.   be kept in only 22K.
  376.  
  377.   The data from the history file is read into memory, and all searches for
  378.   known bids are done in memory. When bids are added, they are added to memory
  379.   AND to the file. Bid deletes are done against the memory array.
  380.  
  381.   When you 'bid kick', the 'history' file is recreated from the memory data.
  382.   All deleted bids are discarded, as are the bids that have expired.
  383.   This is fast, and should have no side effects if the machine is busy doing
  384.   other things. Once the 'history' file is rewritten, the memory image is
  385.   reloaded.
  386.  
  387.   I recommend setting the 'bid timer' to a fairly low number, to keep the
  388.   memory array flushed out.
  389.  
  390. *     Added 'bid count' command, that works with the 'bid memory' command 
  391.   If you have the 'bid memory' command on, you can use the 'bid count' command
  392.   to see how many bids are in memory.
  393.  
  394.  
  395. ------------------------------------------------------------
  396. Minor Changes:
  397.  
  398. The following minor changes have occurred.
  399.  
  400.  
  401. *    Several more Conference Bridge changes for TPP compatibility 
  402.  
  403. *    Changed the Linux version to NOT support the screen saver 
  404.   Since Linux has a screen blanker built-in, I didn't see the need to throw
  405.   away the time.
  406.  
  407. *    Modified the delegation server 
  408.   Made this only send ONE notification per email address per delegation period.
  409.  
  410. *     MANY, MANY, MANY minor changes 
  411.   Some to prevent possible null pointer dereferences, some to merely
  412.   clean-up dirty code.
  413.  
  414. *     The displays for all debug tracing routines cleaned up for Linux 
  415.   Command such as 'mb trace' now have their display formatted correctly.
  416.  
  417. *     Added a sanity check in rewrite file processing 
  418.   This prevents infinite recursion with improperly written rewrite conditions.
  419.   The hard coded limit is currently set to 10. Any address that requires more
  420.   than 10 recursions through the rewrite file will abort the process and log
  421.   the error to the logfile.
  422.  
  423. *     Added code and a compiler flag to make BBS ping command secured 
  424.   If the 'PING_SECURE' flag is enabled, then the BBS ping command will only be
  425.   allowed by users that either have ampr or non-ampr telnet permissions.
  426.  
  427. *     Changed the BBS 'S ' command so it is NOT always a personal message 
  428.   If you send a message as 'S name', then IF the name resolves to a public
  429.   area, it will be treated as if it was sent with 'SB'. Otherwise, it will be
  430.   treated the old way, and handled as a personal message.
  431.  
  432. *     The BBS 'AN ALL' and 'AS ALL' now show held messages for personal
  433.   areas 
  434.  
  435. *     Added the FTPserver NOOP and HELP commands - Removed unused NAME
  436.   command 
  437.  
  438. *     Minor changes in mbxrecline() 
  439.   These properly bit-bucket NULL characters received. Also there was a
  440.   problem with the handling of backspaces within the data of messages. This
  441.   problem was caused by trying to allow a greater deal of data transparency
  442.   in messages being forwarded via PBBS. The problem was it was not limited
  443.   in scope to ONLY a PBBS-entered message. This is fixed.
  444.  
  445. *     Formatting of entries for 'users.dat' file simplified 
  446.   Removed unneeded spaces and correctly remove any haddress from home BBS
  447.   names. Included with 1.14 will be an executable 'cleanup', which can be used
  448.   to cleanup your existing 'users.dat' files. While not required, it may be
  449.   desired.
  450.  
  451. *     The code for the forward commands moved from forward.c to fwdcmd.c 
  452.  
  453. *     The code for bid and wpages expiring moved from expire.c to bid_wp.c 
  454.  
  455. *     Minor change to the mbox status display... 
  456.   For consistency, I changed the Netrom display to make it consistent with
  457.   the rest.
  458.  
  459.         AX25   (user on port xxxx)
  460.         LOCAL  (user @ hostname)
  461.         INET   (user @ hostname)
  462.         NETROM (user @ alias:call)
  463.  
  464.   The netrom display USED to be (alias:call user), and was the ONLY one of
  465.   the types that the user was displayed LAST.
  466.  
  467. *     Added to the smtpserver the VRFY command 
  468.   This does basically the same thing as the EXPN function.
  469.  
  470.  
  471. ------------------------------------------------------------
  472. Known Bugs:
  473.  
  474. The following are known bugs that are being worked on during the development
  475. of release 1.14. These may or may not be fixed in release 1.14.
  476.  
  477. *    TCPGATE won't compile in DOS version 
  478.   Missing some references in the source. Will be fixed soon...
  479.  
  480.  
  481. ------------------------------------------------------------
  482. To-Do List:
  483.  
  484. The following are things on my 'to-do' list that may eventually
  485. be done, but not necessarily by the next release.
  486.  
  487. *    Linux kernel AX25 devices available from TNOS/Linux 
  488.   This would allow the PI card to be used....
  489.  
  490. *    Bypass internet SMTPClient->SMTPServer for local mail 
  491.   Find a way to do all that is being done, without the overhead of two
  492.   separate processes, and two different temp files.
  493.  
  494. *    FBB-style forwarding 
  495.   No, I didn't give up on this.... Jack/KF5MG is working on this.
  496.  
  497. *    HTTP daemon??? 
  498.   Who knows!
  499.  
  500. *    Add capability to TScript to allow starting of OS commands 
  501.   This MAY or MAY NOT be limited to Linux version.
  502.  
  503. *    FTP permissions improved 
  504.   The new UNIX-like dir display needs a little more work with the permissions
  505.   portion of the display...
  506.  
  507. *    Add in UNIX permissions checking to FTP server 
  508.   This could cause problems with restricted files not being restricted.
  509.  
  510. *    Better capability internally or externally to generate statistics 
  511.   Use the log files to show patterns of traffic, usage, etc.
  512.  
  513. *    Color support output to Linux console 
  514.   The various color commands don't work with the Linux kernel and curses.
  515.   Annoying, but just possible unexpected output. No crashes.
  516.  
  517. *    Add a command to allow a sysop to edit the header of a message 
  518.  
  519. *    Add better support for PBBS<->Internet mail address translation 
  520.   The 'translate' file and improved handling of aliases is a START, but more
  521.   work needs to be done here. Maybe a 'translate.out' file...
  522.  
  523. *    Add info to the *.ctl files for forwarding 
  524.   Place a counter in each message entry that tells how many stations remain
  525.   that require forwarding of the message (-1 if none needed it forwarded).
  526.   Don't allow deletion of the message
  527.   during expiry unless this number is <= zero. Display a 'F' in the 'list'
  528.   command if the message has completed forwarding. Add commands to display
  529.   stations remaining to forward to, given a message number/area.
  530.  
  531. *    Put in special case code to better handle message number rollover 
  532.   This is a far less frequent problem in TNOS, with the separate message
  533.   sequence and temp sequence numbers, but the problem will STILL occur when
  534.   the message sequence number wraps around past 65535 for MIDs (or
  535.   99999998 for temp sequence numbers). A special flag to indicate that the
  536.   message scan detected a rollover should be added, and special case code
  537.   added to alter the last message read and number of messages based on
  538.   whether a rollover is in that area.
  539.